﻿using System;
using System.Runtime.CompilerServices;

namespace WPF数据采集系统.BLL
{
    public class DataResult<T>
    {
        public bool State { get; set; } = false;
        public string Message { get; set; }
        public int code { get; set; } = 0;
        public T Data { get; set; }

        public Test2 GetAwaiter()
        {
            return new Test2();
        }
    }
    public class DataResult : DataResult<string>
    {

    }
    public class Test2 : INotifyCompletion
    {
        /*
        总结起来，要想使一个方法可被 await 等待，必须具备以下条件：
            https://www.cnblogs.com/walterlv/p/10236383.html
            1.这个方法返回一个类 A 的实例，这个类 A 必须满足后面的条件。
            2.此类 A 有一个可被访问到的 GetAwaiter 方法（扩展方法也行，这算是黑科技吗？），方法返回类 B 的实例，这个类 B 必须满足后面的条件；
            3.此类 B 实现 INotifyCompletion 接口，且拥有 bool IsCompleted { get; } 属性、GetResult() 方法、void OnCompleted(Action continuation) 方法。      
        */
        public bool IsCompleted { get; set; }
        public void GetResult() { }
        public void OnCompleted(Action continuation) { }
    }
}
